import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Animal es la clase de objetos defensores de cultivos, es una clase abstracta.
 * 
 * @author Gabriela Alvarado
 * @version mayo 2013
 */
public abstract class Animal extends Actor
{   private int contadorTiempo;

    /**
     * Constructor.
     */
    public Animal()
    {     contadorTiempo=0;
    }

    /**
     * Controla el ataque del animal.
     */
    public void act() 
    {
        this.lanzaAtaque();

    }  

    /**
     * Agrega un objeto Ataque al mundo en las mismas coordenadas
     * de el Animal.
     */
    public void lanzaAtaque()
    {     if( contadorTiempo>0 )
            contadorTiempo= contadorTiempo-1;

        else
        {       this.eligeAtaque();
            contadorTiempo=60;
        }
    }

    /**
     * Metodo abstractto, cada animal lanza distinto ataque.
     */
    public abstract void eligeAtaque();

    /**
     * Metodo abstractto, cada animal produce diferente.
     */
    public abstract void produce();

    
}
